Video-based chapter generation for a communication session

ABSTRACT

Methods and systems provide for providing video-based chapter generation for a communication session. In one embodiment, the system receives a transcript and video content of a communication session between participants, the transcript including timestamps for a number of utterances associated with speaking participants; processes the video content to extract one or more pieces of textual content visible within the frames of the video content; segments frames of the video content into a number of contiguous topic segments; determines a title for each topic segment from one or more of: the transcript, and the extracted textual content; assigns a category label for each topic segment from a prespecified list of category labels; and transmits, to one or more client devices, the list of topic segments with determined title and assigned category label for each of the merged topic segments.

FIELD OF INVENTION

The present invention relates generally to digital communication, and more particularly, to systems and methods for providing video-based chapter generation for a communication session.

SUMMARY

The appended claims may serve as a summary of this application.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention relates generally to digital communication, and more particularly, to systems and methods providing for providing video-based chapter generation for a communication session.

The present disclosure will become better understood from the detailed description and the drawings, wherein:

FIG. 1A is a diagram illustrating an exemplary environment in which some embodiments may operate.

FIG. 1B is a diagram illustrating an exemplary computer system that may execute instructions to perform some of the methods herein.

FIG. 2 is a flow chart illustrating an exemplary method that may be performed in some embodiments.

FIG. 3 is a diagram illustrating one example embodiment of segmentation of video content into topic segments.

FIG. 4A is a diagram illustrating extraction of textual content from a frame of video content.

FIG. 4B is a diagram illustrating textual content that has been extracted from a frame of video content.

FIG. 5 is a diagram illustrating playback of video content with topic segments and category labels being presented.

FIG. 6 is a diagram illustrated an example of a prespecified list of category labels.

FIG. 7 is a diagram illustrating an exemplary computer that may perform processing in some embodiments.

DETAILED DESCRIPTION

In this specification, reference is made in detail to specific embodiments of the invention. Some of the embodiments or their aspects are illustrated in the drawings.

For clarity in explanation, the invention has been described with reference to specific embodiments, however it should be understood that the invention is not limited to the described embodiments. On the contrary, the invention covers alternatives, modifications, and equivalents as may be included within its scope as defined by any patent claims. The following embodiments of the invention are set forth without any loss of generality to, and without imposing limitations on, the claimed invention. In the following description, specific details are set forth in order to provide a thorough understanding of the present invention. The present invention may be practiced without some or all of these specific details. In addition, well known features may not have been described in detail to avoid unnecessarily obscuring the invention.

In addition, it should be understood that steps of the exemplary methods set forth in this exemplary patent can be performed in different orders than the order presented in this specification. Furthermore, some steps of the exemplary methods may be performed in parallel rather than being performed sequentially. Also, the steps of the exemplary methods may be performed in a network environment in which some steps are performed by different computers in the networked environment.

Some embodiments are implemented by a computer system. A computer system may include a processor, a memory, and a non-transitory computer-readable medium. The memory and non-transitory medium may store instructions for performing methods and steps described herein.

Digital communication tools and platforms have been essential in providing the ability for people and organizations to communicate and collaborate remotely, e.g., over the internet. In particular, there has been massive adopted use of video communication platforms allowing for remote video sessions between multiple participants. Video communications applications for casual friendly conversation (“chat”), webinars, large group meetings, work meetings or gatherings, asynchronous work or personal conversation, and more have exploded in popularity.

With the ubiquity and pervasiveness of remote communication sessions, a large amount of important work for organizations gets conducted through them in various ways. For example, a large portion or even the entirety of sales meetings, including pitches to prospective clients and customers, may be conducted during remote communication sessions rather than in-person meetings. Sales teams will often dissect and analyze such sales meetings with prospective customers after they are conducted. Because sales meetings may be recorded, it is often common for a sales team to share meeting recordings between team members in order to analyze and discuss how the team can improve their sales presentation skills.

Such techniques are educational and useful, and can lead to drastically improved sales performance results for a sales team. However, such recordings of meetings simply include the content of the meeting, and the communications platforms which host the meetings do not provide the sorts of post-meeting, or potentially in-meeting, intelligence and analytics that such a sales team would find highly relevant and useful to their needs.

Particularly, when navigating through recorded video of a communication session, reviewing a sales meeting can be difficult and time consuming, as sales meeting can often run for 30-60 minutes, and a large amount of time is often spent on scrolling through the meeting to find the portion or topic the user is looking for. Additionally, past sales meetings can be difficult to search for, as there is no way to search for specific topics of discussion for specific prospective customers. Additionally, presentation slides and other presented content within a communication session may contain text which a user may wish to return to and read easily at a later date.

Thus, there is a need in the field of digital communication tools and platforms to create a new and useful system and method for providing video-based chapter generation for a communication session. The source of the problem, as discovered by the inventors, is a lack of ability to dynamically segment a meeting into chapters based on recorded video content of the meeting, including text extracted from the video content, and a lack of ability to dynamically generate titles for those chapters based on text extracted from the recorded video content as well.

In one embodiment, the system receives a transcript and video content of a communication session between participants, the transcript including timestamps for a number of utterances associated with speaking participants; processes the video content to extract one or more pieces of textual content visible within the frames of the video content; segments frames of the video content into a number of contiguous topic segments; determines a title for each topic segment from one or more of: the transcript, and the extracted textual content; assigns a category label for each topic segment from a prespecified list of category labels; and transmits, to one or more client devices, the list of topic segments with determined title and assigned category label for each of the merged topic segments.

In some embodiments, at least one input for the system is a meeting transcript which contains a list of utterances with timing and speaker information, and at least one other input is video content that has recorded capturing the communication session, including, e.g., presentation slides, screens or desktops shared, or any other content which may be displayed or presented by participants during the communication session. In some embodiments, at least one output for the system includes a list of segments with generated title for each segment. In some embodiments, each topic segment in the list may additionally include one or more of a start time, end time, start utterance ID, and/or end utterance ID.

An exemplary method for the system includes three key components: topic segmentation, title generation, and category label assignment. A meeting typically contains several topics, e.g., subjects or aspects of discussion. An exemplary method segments the meeting based on the meeting content and topics; generates a title for each segment; and assigns a category label for each segment. Such a method is a post-session feature, rather than a feature that is performed in real-time during a session. Each of these components will be described in further detail below.

Category labels may be differentiated from titles in several possible ways. In various embodiments, one purpose of category labels is to provide structural information such that cross-meeting analysis can be done on a specific category. This makes category-specific aggregation possible, for example. The type of task involved in assigning category labels is primarily one of classification. The output can be one category label from a prespecified list of category labels. In some embodiments, the method of assignment involves clustering using topic modeling.

On the other hand, in various embodiments, one purpose of a title for a topic segment is to provide some insight into the content within that topic segment. The type of task involved in determining a title may include generation or extraction. The output of a title may be any string, rather than a selection from a prespecified list. In some embodiments, the method of determining a title involves text extraction following by ranking of top phrases within the segment.

Further areas of applicability of the present disclosure will become apparent from the remainder of the detailed description, the claims, and the drawings. The detailed description and specific examples are intended for illustration only and are not intended to limit the scope of the disclosure.

FIG. 1A is a diagram illustrating an exemplary environment in which some embodiments may operate. In the exemplary environment 100, a client device 150 is connected to a processing engine 102 and, optionally, a communication platform 140. The processing engine 102 is connected to the communication platform 140, and optionally connected to one or more repositories and/or databases, including, e.g., a transcript repository 130, video content repository 132, and/or a category labels repository 134. One or more of the databases may be combined or split into multiple databases. The user's client device 150 in this environment may be a computer, and the communication platform 140 and processing engine 102 may be applications or software hosted on a computer or multiple computers which are communicatively coupled via remote server or locally.

The exemplary environment 100 is illustrated with only one client device, one processing engine, and one communication platform, though in practice there may be more or fewer additional client devices, processing engines, and/or communication platforms. In some embodiments, the client device(s), processing engine, and/or communication platform may be part of the same computer or device.

In an embodiment, the processing engine 102 may perform the exemplary method of FIG. 2 or other method herein and, as a result, provide video-based chapter generation for a communication session. In some embodiments, this may be accomplished via communication with the client device, processing engine, communication platform, and/or other device(s) over a network between the device(s) and an application server or some other network server. In some embodiments, the processing engine 102 is an application, browser extension, or other piece of software hosted on a computer or similar device, or is itself a computer or similar device configured to host an application, browser extension, or other piece of software to perform some of the methods and embodiments herein.

The client device 150 is a device with a display configured to present information to a user of the device who is a participant of the video communication session. In some embodiments, the client device presents information in the form of a visual UI with multiple selectable UI elements or components. In some embodiments, the client device 150 is configured to send and receive signals and/or information to the processing engine 102 and/or communication platform 140. In some embodiments, the client device is a computing device capable of hosting and executing one or more applications or other programs capable of sending and/or receiving information. In some embodiments, the client device may be a computer desktop or laptop, mobile phone, virtual assistant, virtual reality or augmented reality device, wearable, or any other suitable device capable of sending and receiving information. In some embodiments, the processing engine 102 and/or communication platform 140 may be hosted in whole or in part as an application or web service executed on the client device 150. In some embodiments, one or more of the communication platform 140, processing engine 102, and client device 150 may be the same device. In some embodiments, the user's client device 150 is associated with a first user account within a communication platform, and one or more additional client device(s) may be associated with additional user account(s) within the communication platform.

In some embodiments, optional repositories can include a transcript repository 130, video content repository 132, and/or category label repository 134. The optional repositories function to store and/or maintain, respectively, a transcript for the communication session; recorded video content for the communication session; and a list of category labels which can be assigned to topic segments for the communication session. The optional database(s) may also store and/or maintain any other suitable information for the processing engine 102 or communication platform 140 to perform elements of the methods and systems herein. In some embodiments, the optional database(s) can be queried by one or more components of system 100 (e.g., by the processing engine 102), and specific stored data in the database(s) can be retrieved.

Communication platform 140 is a platform configured to facilitate meetings, presentations (e.g., video presentations) and/or any other communication between two or more parties, such as within, e.g., a video conference or virtual classroom. A video communication session within the communication platform 140 may be, e.g., one-to-many (e.g., a participant engaging in video communication with multiple attendees), one-to-one (e.g., two friends remotely communication with one another by video), or many-to-many (e.g., multiple participants video conferencing with each other in a remote group setting).

FIG. 1B is a diagram illustrating an exemplary computer system 150 with software modules that may execute some of the functionality described herein. In some embodiments, the modules illustrated are components of the processing engine 102.

Receiving module 152 functions to receive a transcript and video content of a communication session between participants, the transcript including timestamps for a number of utterances associated with speaking participants.

Extracting module 154 functions to process the video content to extract one or more pieces of textual content visible within the frames of the video content.

Segmenting module 156 functions to segment frames of the video content into a plurality of contiguous topic segments.

Title module 158 functions to determine a title for each topic segment from one or more of the transcript and the extracted textual content.

Category label module 160 functions to assign a category label for each topic segment from a prespecified list of category labels.

Transmitting module 162 functions to transmit, to one or more client devices, the list of topic segments with determined titles and assigned category labels for each of the topic segments.

The above modules and their functions will be described in further detail in relation to an exemplary method below.

FIG. 2A is a flow chart illustrating an exemplary method that may be performed in some embodiments.

At step 210, the system receives a transcript and video content of a communication session between participants, the transcript including timestamps for a number of utterances associated with speaking participants. In various embodiments, a communication session may be, e.g., a remote video session, audio session, chat session, or any other suitable communication session between participants. In some embodiments, the communication session can be hosted or maintained on a communication platform, which the system maintains a connection to in order to connect to the communication session. In some embodiments, the system displays a user interface (“UP”) for each of the participants in the communication session. The UI can include one or more participant windows or participant elements corresponding to video feeds, audio feeds, chat messages, or other aspects of communication from participants to other participants within the communication session.

The transcript the system receives relates to a conversation between the participants that is produced during the communication session. That is, the conversation which was produced during the communication is used to generate a transcript. In various embodiments, the transcript is either generated by the system, or is generated elsewhere and retrieved by the system for use in the present systems and methods. In some embodiments, the transcript is textual in nature. In some embodiments, the transcript includes a number of utterances, which are composed of one or more sentences attached to a specific speaker of that sentence (i.e., participant). Timestamps may be attached to each utterance and/or each sentence. In some embodiments, the transcript is generated in real-time while the communication session is underway, and is presented after the meeting has terminated. In other embodiments, the transcript is generated in real-time during the session and also presented in real-time during the session. In some embodiments, automatic speech recognition (“ASR”) techniques are used in whole or in part for generating the transcript. In some embodiments, machine learning (“ML”) or other artificial intelligence (“AI”) models may be used in whole or in part to generate the transcript. In some embodiments, natural language processing (“NLP”) techniques may be used in whole or in part to generate the transcript.

The video content the system receives is any recorded video content that captures the communication session. The video content can include any content that is shown within the communication session, including, e.g., video feeds showing participants, presentation slides which are presented during the session, screens, desktops, or windows which are shared, annotations, or any other suitable content which can be shared during a communication session. The video content is composed of a multitude of frames. In some embodiments, the system receives the video content from a client device which was used by a participant to connect to the communication session. In some embodiments, the video content is generated by a client device, or the system itself, during and/or after the communication session. In some embodiments, video content of a session may be recorded upon a permitted participant, such as a host of the session, selecting one or more “record” options from their user interface. In other embodiments, the video content may be recorded automatically based on a user's preferences.

At step 220, the system processes the video content to extract one or more pieces of textual content visible within the frames of the video content. In some embodiments, this extraction of textual content is performing using optical character recognition (“OCR”). In some embodiments, the system further processes the video content to extract, via OCR, one or more titles visible within the frames of the video content.

In some embodiments, as part of this textual extraction, the system performs one or more of the following: extracting frames from the video content; classifying the frames using a frame classifier; identifying one or more distinguishing frames; detecting a title within each distinguishing frame; cropping a title area within the frame; extracting a title from the cropped title area via OCR; extracting textual content from distinguishing frames via OCR; and transmitting the extracted textual content and extracted titles to one or more client devices and/or elsewhere within the system. In some embodiments, low-resolution and high-resolution versions of frames may be extracted, and a process for analyzing low-resolution frames and extracting from high-resolution versions of those frames may be performed to allow for a faster, more efficient extraction of textual content. In some embodiments, one or more frames may be filtered out if they do not contain text, or if they are frames of a type which does not contain text (i.e., black frames or face frames). In some embodiments, a title may be detected within a distinguishing frame based on a You Only Look Once (YOLO) model or similar model.

At step 230, the system segments the frames of the video content into a number of contiguous topic segments. The topic segmentation process is a key component of the system herein, and functions to segment a meeting into contiguous coherent sections. In some embodiments, video-based segmentation is performed, as well as transcript-based segmentation. Both will be described in further detail below.

In some embodiments, video-based topic segmentation is performed. In various embodiments, video-based topic segmentation may involve use of a frame classifier. By classifying video frames into a number of categories, e.g., 4 categories, consecutively-same frames of video can be grouped within a single segment. Such categories may be, e.g., black frames (i.e., empty or devoid of content), face frames (i.e., frames where faces of participants are shown via their respective video feeds), slide frames (i.e., frames in which presentation slides are being presented), and demo frames (i.e., frames where a demonstration of a product, technique, or similar is being presented).

In some embodiments, video-based topic segmentation may further involve the use of distinguishing frames within a segment containing a presentation slide. In some embodiments, presentation slides which are shown during a session may be considered special types of frames, because most of such presentation slides contain a title, which may be in a header area or similar area within the slide. In some embodiments, a separate title detection model may be employed to detect a title within presentation slides. In some embodiments, a change of a slide title may be considered as defining of a distinguishing frame or key frame, i.e., a frame with new or changed content that can be considered a direct indication of a new topic segment. An example of video-based topic segmentation is described below with respect to FIG. 3 .

In some embodiments, transcript-based topic segmentation is performed, either parallel to or in addition to video-based segmentation. Video-based segmentation is sometimes a long process, and video-generated category labels and titles may sometimes only contain high-level information. In some embodiments, in order to obtain fine-grained segments and titles, after the system obtains the segments using video, the system can perform transcript-based segmentation (as well as transcript-based title determination, described further below) using natural language text on each topic segment. Some potential steps are described below.

In some embodiments, the system may further segment one or more of the topic segments. In some embodiments, the system may perform content vector segmentation (“CVS”) on topic segments which are determined to be longer than a preset threshold. In some embodiments, CVS functions to score the coherence of each segment with a content vector scoring function and utterance embeddings, then uses dynamic programming to find the optimal segment splits. After performing CVS, each long video segment will contain a number of text segments. Only the first text segment is assigned the video segment title if the frames of the segment are classified as demo or slide frames. The rest of the segment titles are generated later.

In some embodiments, the system merges one or more neighboring segments according to one or more merging rules. In some embodiments, when a text segment is too short, the system merges it with one of its neighbors such that the resulting segment is as short as possible. In some embodiments, if the short segment has a category different from both the previous and next segments, or has a category that is the same within both segments, then the system merges it with one of the neighboring segments such that the resulting segment is as short as possible. Otherwise, the system merges the short segment with the one that has the same category.

In some embodiments, the system performs title determination on each segment if it does not have a video title, as described in further detail below. In some embodiments, the title determination algorithm generates a number of top title candidates, and uses a ranker to select the best title. In some embodiments, one or more rules and/or a profanity check can also be applied. In some embodiments, the merging rules include the system merging neighboring segments with the same title. In some embodiments, the merging rules include the system merging neighboring segments when one of the segments does not meet a threshold length.

At step 240, the system determines a title for each topic segment. This determination of a title may be performed using one or more of the transcript, and the extracted textual content from previous steps.

In some embodiments, the system determines a title based on the transcript. Transcript-based title generation may involve the steps of candidate generation and ranking, described in further detail below.

With respect to candidate generation, in some embodiments, parts-of-speech (“POS”) tagging is first applied to the text segment. Each word in the text segment is assigned a label such as “NN” (i.e., noun), “JJ” (i.e., adjective), and so on. In such a way, a grammar can be used to generate a list of possible candidates for the title, including, for example, noun phrases, verb phrases, prepositional phrases, clauses, and more.

With respect to ranking, in some embodiments, the following steps may be performed. For each of the above candidates, a list of features are computed and a final score is calculated based on the features. The candidate with the highest score is assigned as the final title. A number of features may be determined by the system as part of the ranking of candidates, as described below.

First, in some embodiments, a similarity feature may be calculated. In some embodiments, the system captures the similarity between a candidate title and the text segment. A high similarity score is preferred. In some embodiments, the steps are as follows: (1) computing an embedding for a candidate title using a Sentence Transformer; (2) computing an embedding for a text segment using a Sentence Transformer; and (3) calculate the cosine similarity of the two embeddings above.

Second, in some embodiments, inverse document similarity (“IDS”) features are determined by the system. This captures the dissimilarity between the candidate title and the overall text of the transcript. In one exemplary situation, the text segment is similar to the current text segment, but dissimilar to the overall transcript. The IDS features capture the latter part. A high IDS score is preferred, which corresponds to a higher dissimilarity between the candidate and the overall transcript. In some embodiments, the IDS scores are further normalized, as they may have outliers.

Third, in some embodiments, a position feature is determined by the system. In some embodiments, there is a higher probability that the final title may occur early in the text segment compared to much later in the text segment. A position feature can capture this by calculating a score in the range [0,1]. The candidate would have a score of 1 if it appears in the very beginning of the segment, and a score of 0 if it appears in the very last. In some embodiments, the system can determine a ranking score for each candidate as the weighted sum of the above features, and the candidate with the highest score is chosen as the title for the segment.

At step 250, the system assigns a category label for each topic segment from a prespecified list of category labels. In some embodiments, the system assigns the category labels using the transcript and the topic segments as inputs. In some embodiments, the system assigns the category labels based on a prespecified list of category labels which may be used for assignment. An example of such is described with respect to FIG. 6 .

In some embodiments, assigning the category label for each topic segment is performed in part using named entity masking techniques. In some embodiments, NER (described above) may be used on each of the transcript utterances. The system may then mask one or more named entities with their corresponding symbols. For example, the named entity “MONEY” may be masked with the corresponding symbol “_MONEY_”, and the named entity “PERSON” may be masked with the corresponding symbol “_PERSON_”.

In some embodiments, assigning the category label for each topic segment is performed in part using topic model inferencing techniques, in order to assign a category for a current segment. A number of steps may be involved in this topic model inferencing, as outlined below.

First, a TF-IDF score is extracted using a vectorizer trained offline. Next, the system can perform topic model inferencing using a topic model trained offline. In some embodiments, this topic model may contain a fixed number of topics which were obtained using an unsupervised method and are different from the prespecified list of category labels. The system may then obtain the top topics with the highest predicted scores, and set the topic with the highest score as the target topic. Next, the system may find, among the top topics, the topics that are in the prespecified list of category labels, and select the one with the highest score. In some embodiments, an exception may occur if the highest-scoring topic is mapped to a particular category label such as, e.g., “Product”, and a next highest topic may be elected that is not mapped to that category label. If one can be obtained that is close to the previous highest score, the system will select that topic instead. In some embodiments, if none of the highest-scoring topics are listed in the prespecified list of category labels, then the system may return the topic with the highest score.

In some embodiments, the system verifies whether the selected topic is in the prespecified list. If it is, the system can set the mapped topic as the assigned category label for the topic segment. Otherwise, the system may assign the category label for the topic segment as a generalized category label, such as, e.g., “General Discussion”.

In some embodiments, the system may additionally adjust one or more assigned category labels for segments if any predefined post-processing rules are applicable. Such post-processing rules may apply to specific category labels such as, e.g., “Greeting”, “Closing”, or “Break”. In some embodiments, one adjustment operation includes assigning an ambiguous topic to a prespecified category label based on a position of the ambiguous topic segment within the communication session. In some embodiments, one adjustment operation includes assigning an ambiguous topic to a prespecified category label based on which participant is speaking with the highest frequency during the topic segment. In some embodiments, at least one smoothing operation includes determining that a topic segment does not meet a threshold duration requirement, and then merging the topic segment with one or both of its neighboring topic segments. In some embodiments, at least one adjustment operation includes discounting and removing an utterance level score if it does not meet a threshold value.

In some embodiments, offline training of an AI model is performed prior to the system assigning the category label using the AI model. In some embodiments, an unsupervised clustering method is used for training. In some embodiments, an IDF of the training corpus, i.e., a TF-IDF vectorizer, must be obtained during offline training, as well as a topic model. In some embodiments, the system can train the TF-IDF vectorizer with, e.g., 3-gram, top 3000 features, stop words removed, or a lemma tokenizer. In some embodiments, the system can train the topic model using non-negative matrix factorization (“NMF”) to cluster and extract top key phrase features. Once topic groups are obtained, the system may examine top key phrases and map them to prespecified category labels.

At step 260, the system transmits, to one or more client devices, a list of the topic segments with determined title and assigned category label for each of the topic segments. In some embodiments, prior to transmitting the list of the topic segments to the client devices, the system formats the list of topic segments into a structured data markup format, such as, e.g., JSON format.

In some embodiments, the communication session is a sales session with one or more prospective customers and one or more members of a sales team. The generated chapter titles and assigned category labels relate to the sales session, and the system identifies each of the participants of the communication session as a prospective customer or a member of the sales team. In some embodiments, the prespecified category labels are specified particularly for such a sales session.

In some embodiments, data is displayed at one or more client devices which are configured to display a UI related to the communication platform and/or communication session. In various embodiments, the one or more client devices may be, e.g., one or more desktop computers, smartphones, laptops, tablets, headsets or other wearable devices configured for virtual reality (VR), augmented reality (AR), or mixed reality, or any other suitable client device for displaying such a UI.

In various embodiments, the client devices may be associated with and/or operated by one or more of: one or more participants of the communication session associated with the organization, one or more administrators or hosts of the communication session, one or more users within an organizational reporting chain of participants of the communication session, and/or one or more authorized users within the organization. In some embodiments, users may be authorized for their client devices to receive a UI presenting data on topic segments if they are granted permission to access, view, and/or modify such data. In some embodiments, a UI for permissions control may be presented to one or more hosts, administrators, or authorized individuals which allows them to customize a number of settings for providing permissions to users with respect to such data. For example, a user authorized to manage permissions controls for a communication session, or all communication sessions for a particular organization, may be able to add participants, remove participants, add, remove, or modify the particular data or types of data which will be presented for such a session, and more.

Within this displayed UI presented to the one or more client devices, data corresponding to the generated titles and/or assigned category labels can be displayed. For example, a UI may be shown which displays aggregate analytics data pertaining to a sales team's meetings with clients over multiple conversations and communication sessions. An example of such a UI displayed to client device(s) is illustrated in FIG. 4 and described in further detail below. In some embodiments, rather than aggregate analytics data or data shown for all team members, individual and/or customized analytics data for a particular participant can be viewed, including potentially a wide variety of data for that particular individual.

In some embodiments, the displayed UI may additionally or alternatively present one or more windows which present data with respect to an individual recording, such as the most recent conversation or a currently-in-progress conversation produced in a single given communication session. Users may be able to access a playback recording of the communication session, as well as see various pieces of data with respect to the communication session. In some embodiments, users may be able to view a transcript related to the conversation produced, and instruct the UI to display the topic segments with category labels and/or titles. An example of such a UI is illustrated in FIG. 4 , described in further detail below. In some embodiments, a UI element with a playback recording may present one or more pieces of aggregate analytics data or individual analytics data corresponding to the communication session as a whole, the particular topic segment the user is playing back, or any other suitable data which can be presented. An example of such a UI element is illustrated in FIG. 5 , described in further detail below.

FIG. 3 is a diagram illustrating one example flow chart for segmentation of video content into topic segments. The illustrated flow chart shows one example of video-based topic segmentation, as described above.

At step 310, a video timeline is presented from a beginning of a video on the left, to an ending of the video on the right. At step 312, the system uses a frame classifier to classify the frames of the video into different types. As a result, the system classifies that the video is first blank, then starts with a face-to-face meeting involving chatting between participants (“Face”). The video then follows with a slide section (“Slide”), then a demonstration section (“Demo”) after that. The video then concludes with more face-to-face chatting between participants (“Face”). As a result, the meeting can be segmented into 5 topic segments (i.e., chunks), as delineated in step 312.

At step 314, the system identifies distinguishing frames within the slides. The “Slide” segment is further segmented into 2 slides, as a distinguishing frame was found at the start of the second slide segment.

At step 316, the system performs CVS on the “Face” and “Demo” segments, as well as on any slides in the “Slide” section that are deemed too lengthy. The “Face”, “Slide”, “Demo”, and second “Face” sections are further segmented as a result.

Finally, at step 318, the system performs post-processing by merging neighboring slides if they are too short. Thus, several “Demo” segments are merged into 2 segments.

FIG. 4A is a diagram illustrating extraction of textual content from a frame of video content. As described above with respect to FIG. 2 , text may be extracted from one or more frames of the video content. In the illustrated example, a presentation slide is shown. A title area is present, with a title that reads, “Welcome to All Hands”. A date and company name are further provided below the title.

FIG. 4B is a diagram illustrating textual content that has been extracted from a frame of video content. The presentation slide illustrated in FIG. 4A has had its text extracted using one or more processes described above with respect to FIG. 2 . The extracted text includes an extracted title, timestamp associated with the frame of the video content, and three separate pieces of textual content that have been extracted.

FIG. 5 is a diagram illustrating playback of video content with topic segments and category labels being presented.

In the illustration, recorded playback can be accessed by a user. In some embodiments, the user is a user of the communication platform with access or permission to view the recorded playback of the communication session. The user may also be a host of the meeting, administrator, or other account with access privileges. The title of the meeting is listed (“Introduction”), along with the date, time, and duration of the meeting. At the bottom of the illustration, playback and navigation elements are provided, along with other controls related to the viewing experience. A timeline is provided. The timeline is visually segmented into different sections to represent the different topic segments of the conversation which were dynamically generated. The user can hover a mouse pointer, for example, to view a preview image of that portion of the video. Along with the preview image, the assigned category label and determined title for that segment are displayed as “Greeting: Company Introduction”. In the illustrated example, the assigned category label is “Greeting” and was selected from a prespecified list of category labels, and the determined title is “Company Introduction” and was determined based on one or more of the title determination steps detailed above with respect to FIG. 2 .

FIG. 6 is a diagram illustrated an example of a prespecified list of category labels.

In the example, such category labels in the prespecified list include “Greeting”, “Break”, “Customer Info”, “Product”, “Demo”, “Pricing/License”, “Account”, “General Discussion”, and “Closing”. In some embodiments, one or more of these category labels can be assigned via the steps for assigning category labels described above with respect to FIG. 2 .

FIG. 7 is a diagram illustrating an exemplary computer that may perform processing in some embodiments. Exemplary computer 700 may perform operations consistent with some embodiments. The architecture of computer 700 is exemplary. Computers can be implemented in a variety of other ways. A wide variety of computers can be used in accordance with the embodiments herein.

Processor 701 may perform computing functions such as running computer programs. The volatile memory 702 may provide temporary storage of data for the processor 701. RAM is one kind of volatile memory. Volatile memory typically requires power to maintain its stored information. Storage 703 provides computer storage for data, instructions, and/or arbitrary information. Non-volatile memory, which can preserve data even when not powered and including disks and flash memory, is an example of storage. Storage 703 may be organized as a file system, database, or in other ways. Data, instructions, and information may be loaded from storage 703 into volatile memory 702 for processing by the processor 701.

The computer 700 may include peripherals 705. Peripherals 705 may include input peripherals such as a keyboard, mouse, trackball, video camera, microphone, and other input devices. Peripherals 705 may also include output devices such as a display. Peripherals 705 may include removable media devices such as CD-R and DVD-R recorders/players. Communications device 706 may connect the computer 100 to an external medium. For example, communications device 706 may take the form of a network adapter that provides communications to a network. A computer 700 may also include a variety of other devices 704. The various components of the computer 700 may be connected by a connection medium such as a bus, crossbar, or network.

It will be appreciated that the present disclosure may include any one and up to all of the following examples.

Example 1. A method, comprising: receiving a transcript and video content of a conversation between the participants produced during the communication session, the transcript comprising timestamps for a plurality of utterances associated with speaking participants;

processing the video content to extract one or more pieces of textual content visible within the frames of the video content; segmenting frames of the video content into a plurality of contiguous topic segments; determining a title for each topic segment from one or more of: the transcript, and the extracted textual content; assigning a category label for each topic segment from a prespecified list of category labels; and transmitting, to one or more client devices, the list of topic segments with determined title and assigned category label for each of the topic segments.

Example 2. The method of example 1, further comprising: for each of the topic segments, further segmenting the utterances within that topic segment.

Example 3. The method of any of examples 1-2, further comprising: processing the video content to extract, via optical character recognition (OCR), one or more titles visible within the frames of the video content.

Example 4. The method of any of examples 1-3, further comprising: merging one or more neighboring segments according to one or more merging rules.

Example 5. The method of example 4, wherein the merging rules comprise at least merging neighboring segments with the same title.

Example 6. The method of example 3, wherein the merging rules comprise at least merging neighboring segments when one of the segments does not meet a threshold length.

Example 7. The method of any of examples 1-6, further comprising: determining a title for each topic segment based on the transcript.

Example 8. The method of example 7, wherein determining the title for each topic segment comprises: extracting one or more top phrases from each topic segment; determining a ranking of the top phrases for each topic segment; and determining the title for each topic segment based on the top ranked phrase for the topic segment.

Example 9. The method of example 8, wherein extracting the one or more top phrases from each topic segment is performed using parts-of-speech (POS) tagging.

Example 10. The method of example 8, wherein determining the ranking of the top phrases for each topic segment is performed using inverse document similarity techniques where each top phrase is compared to the transcript as a whole.

Example 11. The method of example 8, wherein determining the ranking of the top phrases for each topic segment comprises: determining a similarity score between each top phrase and the text of the utterances within the segment.

Example 12. The method of any of examples 1-11, wherein assigning the category label for each topic segment is performed using named entity recognition (“NER”) techniques.

Example 13. The method of any of examples 1-12, wherein assigning the category label for each topic segment is performed using topic model inferencing techniques.

Example 14. The method of any of examples 1-13, wherein assigning the category label for each topic segment is performed using one or more post-processing rules.

Example 15. The method of any of examples 1-14, wherein assigning the category label for each topic segment is performed using one or more trained artificial intelligence (AI) models, the training of the AI models being performed using unsupervised clustering techniques.

Example 16. The method of any of examples 1-15, wherein the list of topic segments further comprises a starting and ending timestamp for each topic segment.

Example 17. The method of any of examples 1-16, wherein processing the video content to extract the one or more pieces of textual content comprises: extracting high-resolution versions and low-resolution versions of frames from the video content.

Example 18. The method of example 17, wherein processing the video content to extract the one or more pieces of textual content further comprises: extracting, via OCR, the textual content from the high-resolution versions of low-resolution distinguishing frames containing text.

Example 19. A communication system comprising one or more processors configured to perform the operations of: receiving a transcript and video content of a conversation between the participants produced during the communication session, the transcript comprising timestamps for a plurality of utterances associated with speaking participants; processing the video content to extract one or more pieces of textual content visible within the frames of the video content; segmenting frames of the video content into a plurality of contiguous topic segments; determining a title for each topic segment from one or more of: the transcript, and the extracted textual content; assigning a category label for each topic segment from a prespecified list of category labels; and transmitting, to one or more client devices, the list of topic segments with determined title and assigned category labels for each of the topic segments.

Example 20. The communication system of example 19, further comprising: for each of the topic segments, further segmenting the utterances within that topic segment.

Example 21. The communication system of any of examples 19-20, further comprising: processing the video content to extract, via optical character recognition (OCR), one or more titles visible within the frames of the video content.

Example 22. The communication system of any of examples 19-21, further comprising: merging one or more neighboring segments according to one or more merging rules.

Example 23. The communication system of example 22, wherein the merging rules comprise at least merging neighboring segments with the same title.

Example 24. The communication system of example 22, wherein the merging rules comprise at least merging neighboring segments when one of the segments does not meet a threshold length.

Example 25. The communication system of any of examples 19-24, further comprising: determining a title for each topic segment based on the transcript.

Example 26. The communication system of example 25, wherein determining the title for each topic segment comprises: extracting one or more top phrases from each topic segment; determining a ranking of the top phrases for each topic segment; and determining the title for each topic segment based on the top ranked phrase for the topic segment.

Example 27. The communication system of example 26, wherein extracting the one or more top phrases from each topic segment is performed using parts-of-speech (POS) tagging.

Example 28. The communication system of example 27, wherein determining the ranking of the top phrases for each topic segment is performed using inverse document similarity techniques where each top phrase is compared to the transcript as a whole.

Example 29. The communication system of example 27, wherein determining the ranking of the top phrases for each topic segment comprises: determining a similarity score between each top phrase and the text of the utterances within the segment.

Example 30. The communication system of any of examples 19-29, wherein assigning the category label for each topic segment is performed using named entity recognition (“NER”) techniques.

Example 31. The communication system of any of examples 19-30, wherein assigning the category label for each topic segment is performed using topic model inferencing techniques.

Example 32. The communication system of any of examples 19-31, wherein assigning the category label for each topic segment is performed using one or more post-processing rules.

Example 33. The communication system of any of examples 19-32, wherein assigning the category label for each topic segment is performed using one or more trained artificial intelligence (AI) models, the training of the AI models being performed using unsupervised clustering techniques.

Example 34. The communication system of any of examples 19-33, wherein the list of topic segments further comprises a starting and ending timestamp for each topic segment.

Example 35. The communication system of any of examples 19-34, wherein processing the video content to extract the one or more pieces of textual content comprises: extracting high-resolution versions and low-resolution versions of frames from the video content.

Example 36. The communication system of example 35, wherein processing the video content to extract the one or more pieces of textual content further comprises: extracting, via OCR, the textual content from the high-resolution versions of low-resolution distinguishing frames containing text.

Example 37. A non-transitory computer-readable medium containing instructions comprising: instructions for receiving a transcript and video content of a conversation between the participants produced during the communication session, the transcript comprising timestamps for a plurality of utterances associated with speaking participants; instructions for processing the video content to extract one or more pieces of textual content visible within the frames of the video content; instructions for segmenting frames of the video content into a plurality of contiguous topic segments; instructions for determining a title for each topic segment from one or more of: the transcript, and the extracted textual content; instructions for assigning a category label for each topic segment from a prespecified list of category labels; and instructions for transmitting, to one or more client devices, the list of topic segments with determined title and assigned category labels for each of the topic segments.

Example 38. The non-transitory computer-readable medium of example 37, further comprising: for each of the topic segments, further segmenting the utterances within that topic segment.

Example 39. The non-transitory computer-readable medium of any of examples 37-38, further comprising: processing the video content to extract, via optical character recognition (OCR), one or more titles visible within the frames of the video content.

Example 40. The non-transitory computer-readable medium of any of examples 37-39, further comprising: merging one or more neighboring segments according to one or more merging rules.

Example 41. The non-transitory computer-readable medium of example 40, wherein the merging rules comprise at least merging neighboring segments with the same title.

Example 42. The non-transitory computer-readable medium of example 41, wherein the merging rules comprise at least merging neighboring segments when one of the segments does not meet a threshold length.

Example 43. The non-transitory computer-readable medium of any of examples 37-42, further comprising: determining a title for each topic segment based on the transcript.

Example 44. The non-transitory computer-readable medium of example 43, wherein determining the title for each topic segment comprises: extracting one or more top phrases from each topic segment; determining a ranking of the top phrases for each topic segment; and determining the title for each topic segment based on the top ranked phrase for the topic segment.

Example 45. The non-transitory computer-readable medium of example 44, wherein extracting the one or more top phrases from each topic segment is performed using parts-of-speech (POS) tagging.

Example 46. The non-transitory computer-readable medium of example 44, wherein determining the ranking of the top phrases for each topic segment is performed using inverse document similarity techniques where each top phrase is compared to the transcript as a whole.

Example 47. The non-transitory computer-readable medium of example 44, wherein determining the ranking of the top phrases for each topic segment comprises: determining a similarity score between each top phrase and the text of the utterances within the segment.

Example 48. The non-transitory computer-readable medium of any of examples 37-47, wherein assigning the category label for each topic segment is performed using named entity recognition (“NER”) techniques.

Example 49. The non-transitory computer-readable medium of any of examples 37-48, wherein assigning the category label for each topic segment is performed using topic model inferencing techniques.

Example 50. The non-transitory computer-readable medium of any of examples 37-49, wherein assigning the category label for each topic segment is performed using one or more post-processing rules.

Example 51. The non-transitory computer-readable medium of any of examples 37-50, wherein assigning the category label for each topic segment is performed using one or more trained artificial intelligence (AI) models, the training of the AI models being performed using unsupervised clustering techniques.

Example 52. The non-transitory computer-readable medium of any of examples 37-51, wherein the list of topic segments further comprises a starting and ending timestamp for each topic segment.

Example 53. The non-transitory computer-readable medium of any of examples 37-52, wherein processing the video content to extract the one or more pieces of textual content comprises: extracting high-resolution versions and low-resolution versions of frames from the video content.

Example 54. The non-transitory computer-readable medium of example 53, wherein processing the video content to extract the one or more pieces of textual content further comprises: extracting, via OCR, the textual content from the high-resolution versions of low-resolution distinguishing frames containing text.

Some portions of the preceding detailed descriptions have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the ways used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “identifying” or “determining” or “executing” or “performing” or “collecting” or “creating” or “sending” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage devices.

The present disclosure also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the intended purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.

Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the method. The structure for a variety of these systems will appear as set forth in the description above. In addition, the present disclosure is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the disclosure as described herein.

The present disclosure may be provided as a computer program product, or software, that may include a machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g., a computer). For example, a machine-readable (e.g., computer-readable) medium includes a machine (e.g., a computer) readable storage medium such as a read only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory devices, etc.

In the foregoing disclosure, implementations of the disclosure have been described with reference to specific example implementations thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope of implementations of the disclosure as set forth in the following claims. The disclosure and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense. 

What is claimed is:
 1. A method, comprising: receiving a transcript and video content of a conversation between the participants produced during the communication session, the transcript comprising timestamps for a plurality of utterances associated with speaking participants; processing the video content to extract one or more pieces of textual content visible within the frames of the video content; segmenting frames of the video content into a plurality of contiguous topic segments; determining a title for each topic segment from one or more of: the transcript, and the extracted textual content; assigning a category label for each topic segment from a prespecified list of category labels; and transmitting, to one or more client devices, the list of topic segments with determined title and assigned category label for each of the topic segments.
 2. The method of claim 1, further comprising: for each of the topic segments, further segmenting the utterances within that topic segment.
 3. The method of claim 1, further comprising: processing the video content to extract, via optical character recognition (OCR), one or more titles visible within the frames of the video content.
 4. The method of claim 1, further comprising: merging one or more neighboring segments according to one or more merging rules.
 5. The method of claim 4, wherein the merging rules comprise at least merging neighboring segments with the same title.
 6. The method of claim 3, wherein the merging rules comprise at least merging neighboring segments when one of the segments does not meet a threshold length.
 7. The method of claim 1, further comprising: determining a title for each topic segment based on the transcript.
 8. The method of claim 7, wherein determining the title for each topic segment comprises: extracting one or more top phrases from each topic segment; determining a ranking of the top phrases for each topic segment; and determining the title for each topic segment based on the top ranked phrase for the topic segment.
 9. The method of claim 8, wherein extracting the one or more top phrases from each topic segment is performed using parts-of-speech (POS) tagging.
 10. The method of claim 8, wherein determining the ranking of the top phrases for each topic segment is performed using inverse document similarity techniques where each top phrase is compared to the transcript as a whole.
 11. The method of claim 8, wherein determining the ranking of the top phrases for each topic segment comprises: determining a similarity score between each top phrase and the text of the utterances within the segment.
 12. The method of claim 1, wherein assigning the category label for each topic segment is performed using named entity recognition (“NER”) techniques.
 13. The method of claim 1, wherein assigning the category label for each topic segment is performed using topic model inferencing techniques.
 14. The method of claim 1, wherein assigning the category label for each topic segment is performed using one or more post-processing rules.
 15. The method of claim 1, wherein assigning the category label for each topic segment is performed using one or more trained artificial intelligence (AI) models, the training of the AI models being performed using unsupervised clustering techniques.
 16. The method of claim 1, wherein the list of topic segments further comprises a starting and ending timestamp for each topic segment.
 17. A communication system comprising one or more processors configured to perform the operations of: receiving a transcript and video content of a conversation between the participants produced during the communication session, the transcript comprising timestamps for a plurality of utterances associated with speaking participants; processing the video content to extract one or more pieces of textual content visible within the frames of the video content; segmenting frames of the video content into a plurality of contiguous topic segments; determining a title for each topic segment from one or more of: the transcript, and the extracted textual content; assigning a category label for each topic segment from a prespecified list of category labels; and transmitting, to one or more client devices, the list of topic segments with determined title and assigned category labels for each of the topic segments.
 18. The communication system of claim 17, wherein processing the video content to extract the one or more pieces of textual content comprises: extracting high-resolution versions and low-resolution versions of frames from the video content.
 19. The method of claim 18, wherein processing the video content to extract the one or more pieces of textual content further comprises: extracting, via OCR, the textual content from the high-resolution versions of low-resolution distinguishing frames containing text.
 20. A non-transitory computer-readable medium containing instructions comprising: instructions for receiving a transcript and video content of a conversation between the participants produced during the communication session, the transcript comprising timestamps for a plurality of utterances associated with speaking participants; instructions for processing the video content to extract one or more pieces of textual content visible within the frames of the video content; instructions for segmenting frames of the video content into a plurality of contiguous topic segments; instructions for determining a title for each topic segment from one or more of: the transcript, and the extracted textual content; instructions for assigning a category label for each topic segment from a prespecified list of category labels; and instructions for transmitting, to one or more client devices, the list of topic segments with determined title and assigned category labels for each of the topic segments. 